#include<bits/stdc++.h>
#include<windows.h>
#define int long long
#define lc p<<1
#define rc p<<1|1
using namespace std;
const int N=1e6+5;
const int M=1e3+5;
int n,m,k;
int T;
struct node{
	string name;
	int blood;
	int maxblood;
	int atk;
	int killed;
	int kill;
}f[N];
int cont[N];
int jj[N];
int ou[N];
int J;
int flag;
int STY;
int JY;
signed main(){
	srand(time(0));
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>f[i].name;
		if(f[i].name=="STY"){
			f[i].blood=600;
			f[i].atk=78;
			f[i].maxblood=600;
		}
		else if(f[i].name=="YSK"){
			f[i].blood=550;
			f[i].atk=85;
			f[i].maxblood=550;
		}
		else if(f[i].name=="CYB"){
			f[i].blood=650;
			f[i].atk=70;
			f[i].maxblood=650;
		}
		else if(f[i].name=="CDR"){
			f[i].blood=550;
			f[i].atk=70;
			f[i].maxblood=700;
		}
		else if(f[i].name=="ZLR"){
			f[i].blood=600;
			f[i].atk=60;
			f[i].maxblood=600;
		}
		else{
			f[i].blood=500;
			f[i].atk=50;
			f[i].maxblood=500;
		}
	}
	int now=n;
	while(now>1){
		flag=0;
		for(int i=1;i<=n;i++){
			if(f[i].blood<=0)continue;
			if(cont[i]){
				cont[i]--;
				if(f[i].name=="CYB"){
					int um=rand()%100+1;
					if(um<=10){
						cout<<"YSK 发现 CYB 在用自己的账号打比赛！YSK 受到了 99 点伤害\n";
						for(int j=1;j<=n;j++){
							if(f[j].name=="YSK"){
								f[j].blood-=99;
								if(f[j].blood<=0){
									cout<<f[j].name<<" 被击败了！\n";
									f[i].kill++;
									f[j].killed=i;
									now--;
								}
							}
						}
					}
				}
				if(f[i].name=="STY"){
					int um=rand()%100+1;
					if(um<=10){
						cout<<"YSK 发现 STY 在给自己报名奇怪的比赛！YSK 受到了 99 点伤害\n";
						for(int j=1;j<=n;j++){
							if(f[j].name=="YSK"){
								f[j].blood-=99;
								if(f[j].blood<=0){
									cout<<f[j].name<<" 被击败了！\n";
									f[i].kill++;
									f[j].killed=i;
									now--;
								}
							}
						}
					}
				}
				continue;
			}
			if(ou[i]){
				ou[i]--;
				int um=rand()%3;
				if(um==0)cout<<f[i].name<<" 在 ZLR 的汉堡里吃出了家乡情怀！\n";
				if(um==1)cout<<f[i].name<<" 在 ZLR 的汉堡里吃出了外婆！\n";
				if(um==2)cout<<f[i].name<<" 在 ZLR 的汉堡里吃出了童年回忆！\n";
				cout<<f[i].name<<" 受到了 66 点伤害！\n";
				f[i].blood-=66;
				if(f[i].blood<=0){
					cout<<f[i].name<<" 被击败了\n";
					for(int j=1;j<=n;j++){
						if(f[j].name=="ZLR"){
							f[i].killed=j;
							f[j].kill++;
							now--;
						}
					}
					continue;
				}
			}
			int choose=rand()%n+1;
			while(f[choose].blood<=0||choose==i)choose=rand()%n+1;
			int ud=rand()%2==0?1:-1;
			int attack=f[i].atk+ud*(rand()%20);
			if(f[i].name=="STY"){
				if(J<now-1)while(f[choose].blood<=0||choose==i||jj[choose])choose=rand()%n+1;
				int um=rand()%100+1;
				if(um<=30){
					int ch=rand()%n+1;
					while(f[ch].blood<=0||ch==i)ch=rand()%n+1;
					cout<<"STY 与"<<f[ch].name<<" 建交！\n";
					J+=jj[ch]==0;
					jj[ch]+=2;
				}
				if(jj[choose])continue;
			}
			if(f[i].name=="YSK"){
				if(!JY){
					int um=rand()%100+1;
					if(um<=50){
						cout<<"YSK 启动了教师机！\n";
						JY=1;
					}
				}
				else{
					int um=rand()%100+1;
					if(um<=30){
						int ch=rand()%n+1;
						while(f[ch].blood<=0||ch==i||cont[ch])ch=rand()%n+1;
						cout<<"YSK 控制了 "<<f[ch].name<<" 的电脑！\n";
						cont[ch]=1;
					}
				}
			}
			if(f[i].name=="CYB"){
				int um=rand()%100+1;
				if(um<=20){
					int ch=rand()%n+1;
					while(ch==i)ch=rand()%n+1;
					cout<<"CYB 用 "<<f[ch].name<<" 的账号打比赛！"<<f[ch].name<<" 受到了 99 点伤害\n";
					if(f[ch].blood<=0)cout<<f[ch].name<<" 被鞭尸了\n";
					f[ch].blood-=99;
					if(f[ch].blood<=0&&f[ch].blood>-99){
						cout<<f[ch].name<<" 被击败了！\n";
						f[i].kill++;
						f[ch].killed=i;
						now--;
					}
				}
			}
			if(f[i].name=="CDR"){
				int um=rand()%100+1;
				if(um<=15){
					int ch=rand()%n+1;
					while(ch==i)ch=rand()%n+1;
					cout<<"CDR 用 "<<f[ch].name<<" 的账号给 chen_zhe 发了 1e9 条 IAKIOI！\n";
					cout<<f[ch].name<<" 受到了 129 点伤害，CDR 血量回复 10\n";
					if(f[ch].blood<=0)cout<<f[ch].name<<" 被鞭尸了\n";
					f[ch].blood-=129;
					f[i].blood+=10;
					f[i].blood=min(f[i].maxblood,f[i].blood);
					if(f[ch].blood<=0&&f[ch].blood>-99){
						cout<<f[ch].name<<" 被击败了！\n";
						f[i].kill++;
						f[ch].killed=i;
						now--;
					}
				}
			}
			if(f[i].name=="ZLR"){
				int um=rand()%100+1;
				if(um<=20){
					int ch=rand()%n+1;
					while(ch==i||f[ch].blood<=0)ch=rand()%n+1;
					cout<<"ZLR 给 "<<f[ch].name<<" 尝了尝自己做的【汉堡】！\n";
					ou[ch]+=2;
				}
			}
			cout<<f[i].name<<" 发动了攻击，"<<f[choose].name<<" 受到了 "<<attack<<" 点伤害\n";
			f[choose].blood-=attack;
			if(jj[i]&&f[choose].name=="STY"){
				flag=1;
				cout<<f[i].name<<" 背叛了 STY！他受到了 108 点伤害！\n";
				f[i].blood-=108;
				jj[i]=0;
				J--;
				if(f[i].blood<=0){
					cout<<f[i].name<<" 被击败了！\n";
					f[choose].kill++;
					f[i].killed=choose;
					now--;
				}
			}
			if(f[choose].blood<=0){
				cout<<f[choose].name<<" 被击败了\n";
				f[i].kill++;
				f[choose].killed=i;
				now--;
			}
			Sleep(999);
		}
		for(int j=1;j<=n;j++){
			if(f[j].name=="STY"){
				STY=j;
			}
			if(jj[j])jj[j]--,J-=jj[j]==0;
		}
		if(f[STY].blood>0&&flag==0&&J){
			cout<<"STY 本轮与建交的人和平相处，血量回复 30 点\n";
			f[STY].blood+=30;
			f[STY].blood=min(f[STY].blood,f[STY].maxblood);
		}
		for(int j=1;j<=n;j++){
			cout<<f[j].name<<" ："<<max(0ll,f[j].blood);
			if(f[j].blood==f[j].maxblood)cout<<" 【满】";
			cout<<'\n';
		}
		system("pause");
	}
}
